using System;
using System.Collections.Generic;
using System.Text;

using BubzCommerce.CMS.Data.Base;

namespace BubzCommerce.CMS.Data.ManagerObjects
{
    public interface IManagerFactory
    {
		// Get Methods
		IArticlepageLiveManager GetArticlepageLiveManager();
		IArticlepageLiveManager GetArticlepageLiveManager(INHibernateSession session);
		IErrorpageLiveManager GetErrorpageLiveManager();
		IErrorpageLiveManager GetErrorpageLiveManager(INHibernateSession session);
		IUploadManager GetUploadManager();
        IUploadManager GetUploadManager(INHibernateSession session);
		IRedirectorpageLiveManager GetRedirectorpageLiveManager();
		IRedirectorpageLiveManager GetRedirectorpageLiveManager(INHibernateSession session);
		ISiteconfigManager GetSiteconfigManager();
		ISiteconfigManager GetSiteconfigManager(INHibernateSession session);
		ISitetreeLiveManager GetSitetreeLiveManager();
		ISitetreeLiveManager GetSitetreeLiveManager(INHibernateSession session);
		IZzCountryManager GetZzCountryManager();
		IZzCountryManager GetZzCountryManager(INHibernateSession session);
		IZzCurrencyManager GetZzCurrencyManager();
		IZzCurrencyManager GetZzCurrencyManager(INHibernateSession session);
		IZzLanguageManager GetZzLanguageManager();
		IZzLanguageManager GetZzLanguageManager(INHibernateSession session);
    }

    public class ManagerFactory : IManagerFactory
    {
        #region Constructors

        public ManagerFactory()
        {
        }

        #endregion

        #region Get Methods

		public IArticlepageLiveManager GetArticlepageLiveManager()
        {
            return new ArticlepageLiveManager();
        }
		public IArticlepageLiveManager GetArticlepageLiveManager(INHibernateSession session)
        {
            return new ArticlepageLiveManager(session);
        }
		public IErrorpageLiveManager GetErrorpageLiveManager()
        {
            return new ErrorpageLiveManager();
        }
		public IErrorpageLiveManager GetErrorpageLiveManager(INHibernateSession session)
        {
            return new ErrorpageLiveManager(session);
        }
		public IUploadManager GetUploadManager()
        {
            return new UploadManager();
        }
        public IUploadManager GetUploadManager(INHibernateSession session)
        {
            return new UploadManager(session);
        }
		public IRedirectorpageLiveManager GetRedirectorpageLiveManager()
        {
            return new RedirectorpageLiveManager();
        }
		public IRedirectorpageLiveManager GetRedirectorpageLiveManager(INHibernateSession session)
        {
            return new RedirectorpageLiveManager(session);
        }
		public ISiteconfigManager GetSiteconfigManager()
        {
            return new SiteconfigManager();
        }
		public ISiteconfigManager GetSiteconfigManager(INHibernateSession session)
        {
            return new SiteconfigManager(session);
        }
		public ISitetreeLiveManager GetSitetreeLiveManager()
        {
            return new SitetreeLiveManager();
        }
		public ISitetreeLiveManager GetSitetreeLiveManager(INHibernateSession session)
        {
            return new SitetreeLiveManager(session);
        }
		public IZzCountryManager GetZzCountryManager()
        {
            return new ZzCountryManager();
        }
		public IZzCountryManager GetZzCountryManager(INHibernateSession session)
        {
            return new ZzCountryManager(session);
        }
		public IZzCurrencyManager GetZzCurrencyManager()
        {
            return new ZzCurrencyManager();
        }
		public IZzCurrencyManager GetZzCurrencyManager(INHibernateSession session)
        {
            return new ZzCurrencyManager(session);
        }
		public IZzLanguageManager GetZzLanguageManager()
        {
            return new ZzLanguageManager();
        }
		public IZzLanguageManager GetZzLanguageManager(INHibernateSession session)
        {
            return new ZzLanguageManager(session);
        }
        
        #endregion
    }
}
